<?php
/**
 * 用户控制器
 * 13-5-7 下午8:30 
 */
class UserController extends Controller{
    /** 
     * 在当前控制期，以方法形式访问其他类 
     */
	public function actions()
	{
		return array(
				//在actions下的return array添加下面两句，没有actions的话自己添加
				'upload'=>array('class'=>'application.extensions.KEditor.KEditorUpload'),
				'manageJson'=>array('class'=>'application.extensions.KEditor.KEditorManage'),
		        'captcha'=>array(
		                'class'=>'system.web.widgets.captcha.CCaptchaAction',
	                    //'fixedVerifyCode' => substr(md5(time()),0,4), 
                        'foreColor' => 0x55FF00,
                        'testLimit' => 0,  //不限制相同验证码出现的次数
                        'offset' => 5,  //字符间隔
                        'minLength' => 4,
                        'maxLength' => 4,
                        'transparent' => true,    //透明
		                'width'=>75,
		                'height'=>24,
		        ),
		);
	}
	/**
	 *用户登录
	 */
    public function actionLogin(){
        //var_dump(Yii::app()->db);
        //通过控制器方法调用视图
        //renderPatial()调用视图
        //$this ->renderPartial('login');
       
        $user_login = new UserLoginForm();
        if(isset($_POST['UserLoginForm'])){
        	//收集表单信息
        	$user_login->attributes = $_POST['UserLoginForm'];
        	
        	//校验数据,走的是rules()方法
        	
        	if($user_login->validate() && $user_login->login())
        	{
        		$this ->redirect ('./index.php');
        	}
        }
        
        $this -> render('login',array('user_login'=>$user_login));
    }
    
    public function actionLogout(){
        //删除session信息
        Yii::app()->session->clear();  //删除内存里边sessiion变量信息
        Yii::app()->session->destroy(); //删除服务器的session文件
        
        $this->redirect('./index.php');
    }
    
    /*
     * 实现用户注册功能：
     * 1. 展现注册表单
     * 2. 收集数据、校验数据、存储数据
     */
    public function actionRegister(){
    	header("Content-Type:text/html; charset=UTF-8");
        //实例化数据模型对象user
        $user_model = new User();
        /**
         * renderPartial不渲染布局
         * render会渲染布局 
         */
        //$this ->renderPartial('register');
        
        //性别信息
        $sex[1] = "男";
        $sex[2] = "女";
        $sex[3] = "保密";
        
        //定义学历
        $xueli[1] = "-请选择-";
        $xueli[2] = "小学";
        $xueli[3] = "初中";
        $xueli[4] = "高中";
        $xueli[5] = "大学";
        
        //定义爱好信息
        $hobby[1] = "篮球";
        $hobby[2] = "足球";
        $hobby[3] = "排球";
        $hobby[4] = "棒球";
        
        //如果用户有注册表单
        if(isset($_POST['User'])){
            
            if(!empty($_POST['User']['user_hobby']) && is_array($_POST['User']['user_hobby']))
                $_POST['User']['user_hobby'] =implode(",",$_POST['User']['user_hobby']);
            //给模型收集表单信息
            /* foreach($_POST['User'] as $_k => $_v){
                $user_model -> $_k = $_v;
            } */
            if(isset($_POST['User']['password']) && isset($_POST['User']['password2']) ){
                $_POST['User']['password'] = md5($_POST['User']['password']);
                $_POST['User']['password2'] = md5($_POST['User']['password2']);
            }
            
            //上边的foreach，在yii框架里边有优化，使用模型属性attributes来进行优化
            //attributes 属性已经把foreach集成好了，我们可以直接使用
            $user_model -> attributes = $_POST['User'];
            //实现信息存储
            if($user_model -> save()){
                /* 执行登录操作（注册完成自动登录） */
                $_identity=new UserIdentity($user_model->username,$user_model->password);
                $_identity->user_authenticate();
                Yii::app()->user->login($_identity);
                
                
                $this ->redirect ('./index.php');  //重定向到首页
            }
        }
       
        $this -> render('register',array('user_model'=>$user_model,'sex'=>$sex,'xueli'=>$xueli,'hobby'=>$hobby));
    }
  
}